package com.sunducation.wts.penbox.contract;

import com.wetao.lib_common.base.BasePresenter;
import com.wetao.lib_common.base.BaseResponse;
import com.wetao.lib_common.base.BaseViewImp;
import com.wetao.lib_common.bean.response.AppVersionInfo;
import com.wetao.lib_common.bean.response.ReadPushListInfo;
import com.wetao.lib_common.bean.response.StudentExamListInfo;
import com.wetao.lib_common.bean.response.StudentLiveMessageInfo;
import com.wetao.lib_common.bean.response.StudyTaskCountInfo;

import java.util.HashMap;

/**
 * author: zhouyh
 * created on: 3/8/21 11:46 AM
 * description:
 */
public interface HomeContract {

    interface View extends BaseViewImp {


        void getStudyTaskCountResult(StudyTaskCountInfo resp);
        void getStudyTaskCountFail();

        void getStudentLiveMessageListResult(StudentLiveMessageInfo resp);
        void getStudentLiveMessageListFail();

        void getHomeStudentExamListResult(StudentExamListInfo resp);
        void getHomeStudentExamListFail();


        void getClientVersionResult(BaseResponse<AppVersionInfo> data);
        void getClientVersionError();

        void getCommitAnswerResult(BaseResponse response);
        void getCommitAnswerFailed();

        void getReadPushListResult(ReadPushListInfo response);
        void getReadPushListFailed();
    }


    abstract class Presenter extends BasePresenter<View> {

        public abstract void getHomeStudentExamList(HashMap<String, Object> map, boolean isDialog, boolean cancelable);

        public abstract void getHomePageCount(boolean isDialog, boolean cancelable);

        public abstract void getStudentLiveMessageList(HashMap<String, Object> map,boolean isDialog, boolean cancelable);


        public abstract void getClientVersionInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);

        public abstract void getCommitAnswer(String json, boolean isDialog, String tip, boolean isCancelable);

        public abstract void getReadPushList(HashMap<String, String> map, boolean isDialog, boolean isCancelable);

    }
}
